import originJSONP from 'jsonp'

export default function (url, data, option) {
  url += (url.indexOf('?') < 0 ? '?' : '&') + param(data)         // url前缀有可能是？也可能是&。通过三目运算判断
  return new Promise((resolve, reject) => {                  // 所谓promise,就是一个对象用来传递异步操作的消息
    originJSONP(url, option, (err, data) => {
      if (!err) {                                             // 成功(异步操作成功) 返回数据
        resolve(data)
      } else {
        reject(err)                                           // 失败 抛出错误
      }
    })
  })
}

function param (data) {
  let url = ''
  for (var k in data) {
    let value = data[k] !== undefined ? data[k] : ''          // data是否为undefined
    url += `&${k}=${encodeURIComponent(value)}`               // url拼接 &k=v...
  }
  return url ? url.substring(1) : ''                          // 判断url是否存在，是的话就删除第一个字符'&'
}
